#!/bin/bash

# JDK 安装脚本 for Linux
# 作者：Qwen
# 功能：检查 Java 版本、解压 JDK、配置环境变量

# 设置颜色输出
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color

echo -e "${GREEN}开始执行 JDK 8 安装脚本...${NC}"

# 1. 检查是否已有 JDK 版本
echo -e "${YELLOW}正在检查当前 Java 版本...${NC}"
if command -v java &> /dev/null; then
    java_version=$(java -version 2>&1 | head -n 1)
    echo -e "${YELLOW}当前已安装 Java: $java_version${NC}"
else
    echo -e "${GREEN}当前未检测到 Java${NC}"
fi

# 2. 进入 /opt 目录并解压 JDK
cd /opt || {
    echo -e "${RED}/opt 目录不存在或无法进入！${NC}"
    exit 1
}

JDK_TAR="jdk-8u161-linux-x64.tar.gz"
JDK_DIR="jdk1.8.0_161"

if [ ! -f "$JDK_TAR" ]; then
    echo -e "${RED}错误：未找到文件 /opt/$JDK_TAR${NC}"
    echo -e "${RED}请确保 JDK 安装包已上传至 /opt 目录${NC}"
    exit 1
fi

echo -e "${YELLOW}正在解压 $JDK_TAR ...${NC}"
tar -xvf "$JDK_TAR"
if [ $? -ne 0 ]; then
    echo -e "${RED}解压失败，请检查压缩包完整性${NC}"
    exit 1
fi

if [ ! -d "$JDK_DIR" ]; then
    echo -e "${RED}解压后未找到目录 /opt/$JDK_DIR${NC}"
    exit 1
fi

echo -e "${GREEN}JDK 解压完成：/opt/$JDK_DIR${NC}"

# 3. 配置环境变量到 /etc/profile
echo -e "${YELLOW}正在配置环境变量...${NC}"

# 检查是否已添加过 JAVA_HOME（避免重复）
if grep -q "JAVA_HOME" /etc/profile; then
    echo -e "${YELLOW}/etc/profile 中已存在 JAVA_HOME 配置，跳过写入${NC}"
else
    {
        echo ""
        echo "export JAVA_HOME=/opt/$JDK_DIR"
        echo "export PATH=\$JAVA_HOME/bin:\$PATH"
        echo "export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar"
    } >> /etc/profile
    echo -e "${GREEN}环境变量已成功写入 /etc/profile${NC}"
fi

# 4. 重新加载 profile
echo -e "${YELLOW}正在重新加载 /etc/profile ...${NC}"
source /etc/profile
if [ $? -ne 0 ]; then
    echo -e "${RED}重新加载 /etc/profile 失败${NC}"
    exit 1
fi

# 5. 验证安装
echo -e "${YELLOW}正在验证 Java 安装...${NC}"
if java -version &> /dev/null; then
    java -version
    echo -e "${GREEN}Java 安装并配置成功！${NC}"
else
    echo -e "${RED}Java 安装失败，请检查环境变量或 JDK 包是否完整${NC}"
    exit 1
fi

echo -e "${GREEN}脚本执行完毕。${NC}"